Code for the Amazon Locker Service
Write the object-oriented code to implement the design of the Amazon Locker service problem.
We've gone over the different aspects of the Amazon Locker service and observed the attributes attached to the problem using various UML diagrams. Let’s explore the more practical side of things, where we will work on implementing the Amazon Locker service using multiple languages. This is usually the last step in an object-oriented design interview process.
We have chosen the following languages to write the skeleton code of the different classes present in the Amazon Locker service:
Java
C#
Python
C++
JavaScript
Amazon Locker service classes#
In this section, we will provide the skeleton code of the classes designed in the class diagram lesson.
Note: For simplicity, we are not defining getter and setter functions. The reader can assume that all class attributes are private and accessed through their respective public getter methods and modified only through their public method functions.
Enumerations#
First, we will define all the enumerations used in the Amazon Locker service. According to the class diagram, there are two enumerations in the system, i.e., LockerSize
and LockerState
The code to implement these enumerations is as follows:
Note: JavaScript does not support enumerations, so we will be using the
Object.freeze()
method as an alternative that freezes an object and prevents further modifications.
Item and Order#
The Item
class represents the single item while the Order
represents the order placed by the customer and can contain the list of items. The definition of these two classes is given below:
Package and LockerPackage#
When an order is packed, it is represented by the Package
, and the package which is contained in the locker is represented by the LockerPackage
class. The code to implement these classes is shown below:
Locker and LockerLocation#
The Locker
is the most important class of the system and a LockerLocation
can contain multiple Locker
instances. The implementation of these classes is given below:
LockerService and Notification#
The final class of an Amazon Locker service is the LockerService
class which will be singleton class, which means that the entire system will have only one instance of this class. The following code provides the definition of the LockerService
and Notification
classes used in the Amazon Locker service:
Wrapping up#
We've explored the complete design of an Amazon Locker service in this chapter. We've looked at how an Amazon Locker service design can be visualized using various UML diagrams.
Activity Diagram for the Amazon Locker Service
Getting Ready: Vending Machine